#include <REGX52.H>
#include "Delay.h"


unsigned char Key_Number;//记录此时的键码值

/**
  * @brief  获取独立按键键码
  * @param  无
  * @retval 按下按键的键码，范围（0~4），无按下按键时为0
  */
unsigned char Key()
{
	unsigned char Temp=0;
	Temp = Key_Number;
	Key_Number = 0;
	return Temp;
}

/**
* @brief  获取按键此刻的按键值
  * @param  无
  * @retval 按下按键的键码，范围（0~4），无按下按键时为0
  */
unsigned char Key_GetState()
{
	unsigned char KeyNumber=0;
	if(P3_1==0){KeyNumber=1;}
	if(P3_0==0){KeyNumber=2;}
	if(P3_2==0){KeyNumber=3;}
	if(P3_3==0){KeyNumber=4;}
	return KeyNumber;
}

/**
  * @brief  按键循环状态捕获
  * @param  无
  * @retval 无 会给全局变量KeyNumber赋值
  */
void Key_Loop()
{
	static unsigned char NowState;//现状态
	static unsigned char LastState;//之前的状态	
	LastState = NowState;
	NowState = Key_GetState();//记录的是函数返回的KeyNum值（0~5）
	if(LastState==1&&NowState==0)//当按键1按下并且弹起时
	{
		Key_Number = 1;
	}
	if(LastState==2&&NowState==0)//当按键2按下并且弹起时
	{
		Key_Number = 2;
	}
	if(LastState==3&&NowState==0)//当按键3按下并且弹起时
	{
		Key_Number = 3;
	}
	if(LastState==4&&NowState==0)//当按键4按下并且弹起时
	{
		Key_Number = 4;
	}
}